const XLSX = require("xlsx");

function importExcel(filePath, callback) {
  var data = [];
  var err = null;
  try {
    // Everything went fine
    var workbook = XLSX.readFile(filePath);　//整个　excel　文档
    var sheetNames = workbook.SheetNames; //获取所有工作薄名

    //console.log(sheetNames);

    //解析
    var sheet1 = workbook.Sheets[sheetNames[0]]; //根据工作薄名获取工作薄

    /*
     sheet1['!ref']　获取工作薄的有效范围　'A1:C20'
     XLSX.utils.decode_range 将有效范围转为　range对象
     range: {s: {r:0, c:0}, e: {r:10, 3}}
     */
    var range = XLSX.utils.decode_range(sheet1['!ref']);

    //循环获取单元格值
    for (var R = range.s.r; R <= range.e.r; ++R) {
      var row = [], flag = false;
      for (var C = range.s.c; C <= range.e.c; ++C) {
        var row_value = null;
        var cell_address = {c: C, r: R}; //获取单元格地址
        var cell = XLSX.utils.encode_cell(cell_address); //根据单元格地址获取单元格
        if (sheet1[cell]) //获取单元格值
          row_value = sheet1[cell].v;
        else
          row_value = '';
        row.push(row_value);
      }
      //判断整行是否都为空，是则去掉
      for (var i = 0; i < row.length; i++) {
        if (row[i] != '') {
          flag = true;
          break;
        }
      }
      if (flag) data.push(row);
    }
  } catch (e) {
    err = '解析出错' + e.toString();
  }

  callback(err, data);
}

function signUpAllGroups(data) {
  var group = require("./mark_model").group
  var group_info = [["", "", "", "", "", "", "", "", ""],
    ["", "", "", "", "", "", "", "", ""],
    ["", "", "", "", "", "", "", "", ""],
    ["", "", "", "", "", "", "", "", ""],
    ["", "", "", "", "", "", "", "", ""],
    ["", "", "", "", "", "", "", "", ""],
    ["", "", "", "", "", "", "", "", ""],
    ["", "", "", "", "", "", "", "", ""],
    ["", "", "", "", "", "", "", "", ""],
    ["", "", "", "", "", "", "", "", ""],
    ["", "", "", "", "", "", "", "", ""],
    ["", "", "", "", "", "", "", "", ""],
    ["", "", "", "", "", "", "", "", ""],
    ["", "", "", "", "", "", "", "", ""],
    ["", "", "", "", "", "", "", "", ""],
    ["", "", "", "", "", "", "", "", ""],
    ["", "", "", "", "", "", "", "", ""],
    ["", "", "", "", "", "", "", "", ""],
    ["", "", "", "", "", "", "", "", ""],
    ["", "", "", "", "", "", "", "", ""],
    ["", "", "", "", "", "", "", "", ""],
    ["", "", "", "", "", "", "", "", ""],
    ["", "", "", "", "", "", "", "", ""],
    ["", "", "", "", "", "", "", "", ""],
    ["", "", "", "", "", "", "", "", ""],
    ["", "", "", "", "", "", "", "", ""],
    ["", "", "", "", "", "", "", "", ""],
    ["", "", "", "", "", "", "", "", ""],
    ["", "", "", "", "", "", "", "", ""],
    ["", "", "", "", "", "", "", "", ""]]

  for (var i = 1; i < data.length; i++) {
    if(data[i][7] != ""){
      var banji = parseInt(data[i][7].split("-")[0])
      var zuhao = parseInt(data[i][7].split("-")[1])

      // console.log(banji - 1, zuhao - 1)

      group_info[banji - 1][zuhao - 1] += data[i][3] + ":" + data[i][4] + "/"
    }

  }

  // console.log(group_info)

  for (var j = 1; j <= group_info.length; j++) {
    for(var k = 1; k <= group_info[j-1].length; k++){
      if(group_info[j-1][k-1] != ""){
        group.create({
          exam_id: "5be253189320e9067d54391e", //id2
          name: j + "-" + k,
          members: group_info[j-1][k-1].slice(0, group_info[j-1][k-1].length - 1),
          is_marked: "0",
        }, (error, doc) => {
          if (error) {
            console.log(error)
          } else {
            console.log({
              error_no: 0,
              error_msg: "ok",
              exam: doc
            })
          }
        })
      }
    }
  }
}

importExcel('2018.xlsx', function (err, data) {
  if (err) {
    console.log(err);
  } else {
    // console.log(data)
    signUpAllGroups(data)
  }
})
